操作系统:centos7.9
磁盘分区:mbr/gpt
文件系统:ext4/xfs
注:ext系列需卸载硬盘,再扩容;xfs可在线扩容,无需卸载硬盘
EXT流程:
1.卸载硬盘
2.扩容
3.挂载、验证
第一步,卸载
语法:umount 《块路径或挂载路径》
注:可能面临硬盘被使用的情况,无法卸载的情况
方案1:可手工PS进程
| #第一步,进入其它目录,防止当前终端在卸载目录中
cd
#第二步,ps挂载路径
#查看所有UID的进程
ps -ef | grep 挂载路径
#查看所有用户并显示终端
ps -aux | grep 故障路径
|
方案2:强制卸载,
语法:umount -l 《块路径或挂载路径》
第二步,扩容
现有硬盘扩容:
parted可对现在磁盘扩展分区,仅可扩容至连续的可用空间,不可跨分区。(与win相同)
注:操作前,需先卸载分区,否则无法扩容!!!
范例:
原7G硬盘,现硬盘扩容至10G,使用parted将剩余空间全部扩容至原有分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 | #当前当前分区结构(sdb共10G,将sdb1原7G,将剩余3G空间扩容至sdb1)
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 99G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 98G 0 part
├─rhel-root 253:0 0 94G 0 lvm /
└─rhel-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 7G 0 part
sr0 11:0 1 1024M 0 rom
#操作对象parted
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
#打印分区信息(1个分区及容量起始位置)
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
1 1049kB 7516MB 7515MB primary ext4
#扩容对象:分区 "1"
(parted) resizepart 1
#end结束位置可以写容量也可以写百分比(注:7516MB是原来的位置)
结束点? [7516MB]? 100%
#打印更新后的
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
1 1049kB 10.7GB 10.7GB primary ext4
#退出
(parted) quit
信息: You may need to update /etc/fstab.
#更新分区后,检测文件系统,可选。(当分区扩容异常时需要做)
#(ext4使用 e2fsck -f /dev/sdb1)
[root@localhost ~]# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
第1步: 检查inode,块,和大小
第2步: 检查目录结构
第3步: 检查目录连接性
第4步: Checking reference counts
第5步: 检查簇概要信息
/dev/sdb1: 12/458752 files (0.0% non-contiguous), 69632/1834752 blocks
#刷新容量(ext4使用resize2fs /dev/sdb1)
[root@localhost ~]# resize2fs /dev/sdb1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/sdb1 to 2621184 (4k) blocks.
The filesystem on /dev/sdb1 is now 2621184 blocks long.
#查询更新结果
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 99G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 98G 0 part
├─rhel-root 253:0 0 94G 0 lvm /
└─rhel-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
sr0 11:0 1 1024M 0 rom
|
第三步,重新挂载验证
挂载验证:mount /dev/sdb1
lsblk
df -h
XFS流程:
xfs的优势就是在线扩容,但依赖growpart工具进行扩容,需额外安装。
当然,如果不想安装growpart,就需要卸载硬盘使用parted进行扩容
注:growpart 同时支持 MBR 和 GPT 两种分区表,唯一限制是:只能扩展该磁盘上最后一段连续的空闲空间(最后一个分区)
1.安装growpart
2.使用growpart扩容最后一个分区
3.刷新分区
4.重新挂载验证
第一步,安装growpart
| yum install -y cloud-utils-growpart
|
第二步,使用growpart扩容最后一个分区
语法:LANG=en_US.UTF-8 growpart《块路径》 最后分区编号
| #扩容/dev/sdb下第1个分区(因当前只有1个分区,也就是最后1个分区)
LANG=en_US.UTF-8 growpart /dev/sdb 1
|
第三步,刷新分区
| #ext4使用resize2fs
resize2fs /dev/sdb1
#xfs使用xfs_growfs
xfs_growfs /dev/sdb1
|
第四步,重新挂载验证
挂载验证:mount /dev/sdb1
lsblk
df -h